package cn.sstech.member.base.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

/**
 *  方法名与mybatis 映射文件SQL ID对应
 */
public interface BaseDao<T> {
	
	void save(@Param("map") T t
			,@Param("subSystemCode") String subSystemCode);
	
	void save(@Param("map") Map<String, Object> map
			,@Param("subSystemCode") String subSystemCode);
	
	void saveBatch(@Param("list") List<T> list
			,@Param("subSystemCode") String subSystemCode);
	
	int update(@Param("map") T t
			,@Param("subSystemCode") String subSystemCode);
	
	int update(@Param("map") Map<String, Object> map
			,@Param("subSystemCode") String subSystemCode);
	
//	int delete(@Param("id") Object id
//			,@Param("subSystemCode") String subSystemCode);
	
	int delete(@Param("map") Map<String, Object> map
			,@Param("subSystemCode") String subSystemCode);
	
	int deleteBatch(@Param("ids") Object[] ids
			,@Param("subSystemCode") String subSystemCode);

	T queryObject(@Param("id") Object id
			,@Param("subSystemCode") String subSystemCode);
	
	List<T> queryList(@Param("map") Map<String, Object> map
			,@Param("subSystemCode") String subSystemCode);
	
//	List<T> queryList(@Param("id") Object id
//			,@Param("subSystemCode") String subSystemCode);
	
	int queryTotal(@Param("map") Map<String, Object> map
			,@Param("subSystemCode") String subSystemCode);

	int queryTotal(
			@Param("subSystemCode") String subSystemCode);
}